package ar.edu.utn.frba.tacs.warnes.services;

import java.util.ArrayList;
import java.util.List;

import static org.junit.Assert.*;
import org.junit.Before;
import org.junit.Test;

import ar.edu.utn.frba.tacs.mercadowarnessh.facturacion.NotificadorDePedidosSOAP;
import ar.edu.utn.frba.tacs.warnes.entities.Pedido;
import ar.edu.utn.frba.tacs.warnes.entities.Pieza;
import ar.edu.utn.frba.tacs.warnes.utils.ContenedorWarnes;

/**
 * ACORDARSE DE LEVANTAR EL SIMULADOR!!
 * 
 * @author Diego
 * 
 */
public class NotificarEfectivizacionDePedidosSOAPTestCase {

	private Pedido pedido;
	private ContenedorWarnes contenedor;
	private NotificadorDePedidosSOAP notificadorSOAP;

	@Before
	public void setUp() {
		this.notificadorSOAP = NotificadorDePedidosSOAP.getInstance();
		this.contenedor = ContenedorWarnes.getInstance();
		Pieza pieza1 = this.contenedor.creaUnaPieza("La 1er Pieza");
		Pieza pieza2 = this.contenedor.creaUnaPieza("La Segunda");
		List<Pieza> piezas = new ArrayList<Pieza>();
		pieza1.setPrecioEnPesos(30f);
		pieza2.setPrecioEnPesos(5.75f);
		pieza1.save();
		pieza2.save();
		piezas.add(pieza1);
		piezas.add(pieza2);
		this.pedido = this.contenedor.crearUnPedido(piezas);
	}

	// ACORDARSE DE LEVANTAR EL SIMULADOR!!
	@Test
	public void notificacionExitosaDePedido() {
		assertFalse(this.notificadorSOAP.seAvisoAFacturacion(this.pedido));
		this.pedido.efectivizar();
		assertTrue(this.notificadorSOAP.seAvisoAFacturacion(this.pedido));
	}

}
